package com.workflow.workflowproject.pojo.lowflow;

import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.math.BigDecimal;

import java.io.Serial;
import java.util.List;

import com.mybatisflex.core.handler.Fastjson2TypeHandler;
import com.mybatisflex.core.keygen.KeyGenerators;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 *  实体类。
 *
 * @author Administrator
 * @since 2024-10-31
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("t_com_flow_node_approve")
public class FlowNodeApprove implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 流程节点id
     */
    @Id(keyType = KeyType.Generator, value = KeyGenerators.snowFlakeId)
    @Schema(description = "流程节点id")
    private String id;



    /**
     * 流程文件id
     */
    @Column(value = "flow_file_id")
    @Schema(description = "流程文件id")
    private String flowFileId;


    /**
     * 审批对象（）
     */
    @Column(value = "assignee_type")
    @Schema(description = "审批对象（）")
    private String assigneeType;


    /**
     * 表单内人员
     */
    @Column(value = "formUser")
    @Schema(description = "表单内人员")
    private String formuser;


    /**
     * 表单内角色
     */
    @Column(value = "formRole")
    @Schema(description = "表单内角色")
    private String formrole;


    /**
     * 审批人
     */
    @Column(value = "users",typeHandler = Fastjson2TypeHandler.class)
    @Schema(description = "审批人")
    private List<String> users;


    /**
     * 审批人角色
     */
    @Column(value = "roles",typeHandler = Fastjson2TypeHandler.class)
    @Schema(description = "审批人角色")
    private List<String> roles;


    /**
     * 主管
     */
    @Column(value = "leader")
    @Schema(description = "部门")
    private String leader;


    /**
     * 组织主管
     */
    @Column(value = "orgLeader")
    @Schema(description = "项目")
    private Integer orgleader;


    /**
     * 发起人自选：0-单选，1-多选
     */
    @Column(value = "choice")
    @Schema(description = "发起人自选：0-单选，1-多选")
    private Integer choice;


    /**
     * 发起人自己：0-单选，1-多选
     */
    @Column(value = "self")
    @Schema(description = "发起人自己：0-单选，1-多选")
    private Integer self;

    @Column(value = "multi")
    @Schema(description = "多人审批方式")
    private String multi;

    @Column(value = "multiPercent")
    @Schema(description = "多人会签通过百分比")
    private Double multiPercent;

    @Column(value = "nobody")
    @Schema(description = "审批人为空时处理方式")
    private String nobody;

    @Column(value = "nobodyUsers")
    @Schema(description = "审批人为空时指定人员")
    private List<String> nobodyUsers;

}
